Java-তে Random ক্লাস এবং Math.random() মেথড দুটি র্যান্ডম নম্বর জেনারেট করার জন্য ব্যবহৃত হয়। তবে, তাদের ব্যবহারের মধ্যে কিছু পার্থক্য রয়েছে। এখানে এই দুটি টুলের কাজ এবং ব্যবহার সম্পর্কে বিস্তারিত আলোচনা করা হলো।
1. Random ক্লাস
Random ক্লাসটি java.util প্যাকেজের অংশ এবং এটি র্যান্ডম নম্বর জেনারেট করার জন্য ব্যবহৃত হয়। এই ক্লাসটি বিভিন্ন ধরনের র্যান্ডম মান (যেমন, ইনটিজার, ডাবল, বুলিয়ান) জেনারেট করতে সক্ষম।
Random ক্লাসের বৈশিষ্ট্য:
- এটি পseudo-random নম্বর জেনারেট করে, অর্থাৎ, একে পূর্বাভাস করা সম্ভব নয়, কিন্তু একটি নির্দিষ্ট সিড (seed) দিয়ে র্যান্ডম সিকোয়েন্স পুনরায় তৈরি করা সম্ভব।
Randomক্লাসের মাধ্যমে আপনি নির্দিষ্ট রেঞ্জের মধ্যে (যেমন 0 থেকে 100) র্যান্ডম সংখ্যা জেনারেট করতে পারেন।
Random ক্লাসের কিছু গুরুত্বপূর্ণ মেথড:
nextInt(): একটি র্যান্ডম পূর্ণসংখ্যা (integer) তৈরি করে।nextInt(n): 0 (inclusive) থেকে n (exclusive) রেঞ্জে একটি র্যান্ডম পূর্ণসংখ্যা তৈরি করে।nextDouble(): 0.0 (inclusive) থেকে 1.0 (exclusive) পর্যন্ত একটি র্যান্ডম ডাবল ভ্যালু তৈরি করে।nextBoolean(): একটি র্যান্ডম বুলিয়ান মান (true অথবা false) তৈরি করে।
Random ক্লাসের ব্যবহার:
import java.util.Random;
public class RandomExample {
public static void main(String[] args) {
Random random = new Random();
// Generate a random integer
int randomInt = random.nextInt();
System.out.println("Random Integer: " + randomInt);
// Generate a random integer between 0 and 100
int randomIntBetween0And100 = random.nextInt(101); // 0 to 100
System.out.println("Random Integer between 0 and 100: " + randomIntBetween0And100);
// Generate a random double between 0 and 1
double randomDouble = random.nextDouble();
System.out.println("Random Double between 0 and 1: " + randomDouble);
// Generate a random boolean
boolean randomBoolean = random.nextBoolean();
System.out.println("Random Boolean: " + randomBoolean);
}
}
Output:
Random Integer: 213214232
Random Integer between 0 and 100: 56
Random Double between 0 and 1: 0.783241654
Random Boolean: true
2. Math.random() মেথড
Math.random() হল একটি স্ট্যাটিক মেথড যা 0 (inclusive) এবং 1 (exclusive) এর মধ্যে একটি র্যান্ডম ডাবল ভ্যালু প্রদান করে। এটি কোনো সিড (seed) ব্যবহার করে না, এবং এটি শুধুমাত্র ডাবল মান প্রদান করে, যেটি প্রাসঙ্গিক ডোমেইনে ব্যবহারযোগ্য।
Math.random() মেথডের বৈশিষ্ট্য:
- এটি শুধুমাত্র একটি র্যান্ডম ডাবল সংখ্যা প্রদান করে, যা 0.0 (inclusive) এবং 1.0 (exclusive) এর মধ্যে থাকে।
- এটি সরল এবং দ্রুত, কিন্তু আপনি যদি আরো কাস্টমাইজড র্যান্ডম মান প্রয়োজন হয়, তবে
Randomক্লাস ব্যবহার করা ভালো।
Math.random() মেথডের ব্যবহার:
public class MathRandomExample {
public static void main(String[] args) {
// Generate a random double between 0 and 1
double randomValue = Math.random();
System.out.println("Random Value between 0 and 1: " + randomValue);
// Generate a random integer between 0 and 100
int randomInt = (int) (Math.random() * 101); // 0 to 100
System.out.println("Random Integer between 0 and 100: " + randomInt);
}
}
Output:
Random Value between 0 and 1: 0.654278956
Random Integer between 0 and 100: 42
Random ক্লাস এবং Math.random() এর মধ্যে পার্থক্য:
| বৈশিষ্ট্য | Random ক্লাস | Math.random() মেথড |
|---|---|---|
| কোথায় পাওয়া যায় | java.util.Random প্যাকেজের মধ্যে | java.lang.Math প্যাকেজের মধ্যে |
| ফাংশনালিটি | বিভিন্ন ধরনের র্যান্ডম মান (int, double, boolean) প্রদান করে | শুধুমাত্র একটি ডাবল মান প্রদান করে (0.0 থেকে 1.0) |
| সিডিং (Seeding) | সিড (seed) দিয়ে কাস্টম র্যান্ডম সিকোয়েন্স তৈরি করা যায় | স্বয়ংক্রিয়ভাবে সিড তৈরি করে |
| থ্রেড সেফ | Random ক্লাস থ্রেড সেফ নয়, কিন্তু ThreadLocalRandom ব্যবহার করা যেতে পারে | থ্রেড সেফ, তবে শুধুমাত্র ডাবল মান তৈরি করে |
| প্রয়োগ | যখন আপনি বিভিন্ন ধরনের র্যান্ডম মান (integers, doubles, booleans) চান | সহজ র্যান্ডম মান (যেমন, 0.0 এবং 1.0 এর মধ্যে) |
Randomক্লাস বেশি কাস্টমাইজড র্যান্ডম ডেটা তৈরি করতে সাহায্য করে, যেমন ইন্টিজার, ডাবল, বা বুলিয়ান মান। এটি বড় এবং জটিল প্রোগ্রামিংয়ের জন্য উপযুক্ত যেখানে বিভিন্ন ধরনের র্যান্ডম মানের প্রয়োজন হয়।Math.random()মেথড সরল এবং দ্রুত উপায়, কিন্তু এটি শুধু ডাবল মান প্রদান করে যা 0 এবং 1 এর মধ্যে থাকে। সাধারণভাবে, এটি ছোট এবং সহজ অ্যাপ্লিকেশনগুলির জন্য ব্যবহৃত হয় যেখানে আপনি র্যান্ডম ডাবল ভ্যালু চান।
Read more